(defmacro defined [& var]
    `(try 
        (or 
            (boolean (resolve ~@var)) 
            (not (nil? (eval ~@var)))
        ) (catch Exception e# false)
    )
)

(println "getCharacter")
(if (defined 'getCharacter)
	(throw (Exception. "getCharacter already defined!"))
)
(def getCharacter putCharacter)
(def getCharacterType (class getCharacter))
(println getCharacterType)
(println getCharacter)
(if-not (= getCharacterType Character)
	(throw (Exception. "getCharacter not Character"))
)

(println "getCharacterVector")
(if (defined 'getCharacterVector)
	(throw (Exception. "getCharacterVector already defined!"))
)
(def getCharacterVector putCharacterVector)
(def getCharacterVectorType (class (get getCharacterVector 0)))
(println getCharacterVectorType)
(println getCharacterVector)
(if-not (= getCharacterVectorType Character)
	(throw (Exception. "getCharacterVector not Character"))
)

(println "getCharacterVectorAsList")
(if (defined 'getCharacterVectorAsList)
	(throw (Exception. "getCharacterVectorAsList already defined!"))
)
(def getCharacterVectorAsList putCharacterVectorAsList)
(def getCharacterVectorAsListType (class (get getCharacterVectorAsList 0)))
(println getCharacterVectorAsListType)
(println getCharacterVectorAsList)
(if-not (= getCharacterVectorAsListType Character)
	(throw (Exception. "getCharacterVectorAsList not Character"))
)

(println "getCharacterMatrix")
(if (defined 'getCharacterMatrix)
	(throw (Exception. "getCharacterMatrix already defined!"))
)
(def getCharacterMatrix putCharacterMatrix)
(def getCharacterMatrixType (class (get (get getCharacterMatrix 0) 0)))
(println getCharacterMatrixType)
(println getCharacterMatrix)
(if-not (= getCharacterMatrixType Character)
	(throw (Exception. "getCharacterMatrix not Character"))
)

(println "getCharacterMatrixAsList")
(if (defined 'getCharacterMatrixAsList)
	(throw (Exception. "getCharacterMatrixAsList already defined!"))
)
(def getCharacterMatrixAsList putCharacterMatrixAsList)
(def getCharacterMatrixAsListType (class (get (get getCharacterMatrixAsList 0) 0)))
(println getCharacterMatrixAsListType)
(println getCharacterMatrixAsList)
(if-not (= getCharacterMatrixAsListType Character)
	(throw (Exception. "getCharacterMatrixAsList not Character"))
)